#pragma once

#include <ostream>

namespace Torrent
{
    namespace Bencode
    {    
        class IPrimitive
        {
        public:
            IPrimitive(void){};
            ~IPrimitive(void){};

            virtual void print(std::ostream& stream, bool debug = false) = 0;

            //Add Print operator
            // >>
            // <<

            //friend std::istream& operator >> (std::istream& s, Bencode& b);
            //friend virtual std::ostream& operator << (std::ostream& s, const Bencode& b) = 0;
        };    
    } //namespace Bencode
} //namespace Torrent
